home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok20.lha
/
ComplexLib
/
ComplexLib.DOK
< prev
next >
Wrap
Text File
|
1993-08-15
|
8KB
|
141 lines
(*-------------------------------------------------------------------------*)
(* Dieses Modul unterstützt das Rechnen mit komplexen Zahlen *)
(* mit dem Compiler M2AMIGA 3.11d *)
(*-------------------------------------------------------------------------*)
(* Es werden die Grundrechenarten und wichtige mathematische *)
(* Funktionen zur Verfügung gestellt, welche in den Bereichen *)
(* Naturwissenschaft und Technik häufig benötigt werden. *)
(*-------------------------------------------------------------------------*)
(* Autor : Gary Struhlik *)
(* Datum : 08.10.1988 *)
(* System : AMIGA 500, Kickstart 1.2 und M2AMIGA *)
(* *)
(* Version: 1.0 *)
(* Hinweis: Mit M2Amiga V3.2d am 01.01.1989 kompiliert *)
(*-------------------------------------------------------------------------*)
Die Module ComplexLib, LongComplexLib und FFPComplexLib beinhalten alle
die gleichen Funktionen. Es wird das Rechnen mit komplexen Zahlen unter-
stützt. Die meisten Funktionen sind eigentlich keine, sondern es sind
Prozeduren [ z.B. csin(var1,var2) ] mit VAR Parametern. Im Falle von
csin (komplexer Sinus) ist var1 eine komplexe Zahl, die der Funktionswert
von der komplexen Variablen var2 (Argument der Funktion) ist.
Oder anders ausgedrückt, die für var1 eingesetzte komplexe Variable ist
der Sinus von var2. Alle drei Module haben den vordefinierten Datentyp
COMPLEX, LONGCOMPLEX oder FFPCOMPLEX (siehe RECORD Typ).
Eine komplexe Zahl besteht aus einem Real- und einem Imaginärteil. Die
hier verwendeten Funktionen beziehen sich alle auf diese 'Normalform'.
Es gibt noch die Darstellung einer komplexen Zahl in Betrag und Phase.
Diese Module bieten Umrechnungsmöglichkeiten.
Prozedur | Beschreibung
--------------------------------------------------------------------------------
PROCEDURE compop (VAR Z:COMPLEX; A:COMPLEX; Grundrechenarten mit
OP:CHAR; B:COMPLEX); komplexen Zahlen
in Z steht das Ergebnis
der Operation von A
und B. OP ist ein CHAR
Typ '+','-','*' oder
'/'
Z=A Operator B
PROCEDURE conjg (VAR Z : COMPLEX; A : COMPLEX); konjugiert komplex
Z.RE=A.RE
Z.IM:=-A.IM
PROCEDURE cabs (A : COMPLEX) : REAL; Betrag einer komplexen
Zahl
PROCEDURE carg (A : COMPLEX) : REAL; Winkel einer komplexen
Zahl (Bogenmaß !!!!!)
PROCEDURE cpol (VAR Z : COMPLEX; A : COMPLEX); Umwandlung von
Normal- in Polarform,
d.h. Z.RE ist jetzt
der Betrag und Z.IM
der Winkel in Grad !
PROCEDURE crec (VAR Z : COMPLEX; A : COMPLEX); Umwandlung von Polar-
in Normalform, d.h.
A.RE muß ein Betrag
sein und A.IM ein
Winkel in Grad !
Hinweis:
Die Schreibweise ist bei crec und cpol nicht ganz sauber, aber
einfach für die Handhabung.
PROCEDURE crcp (VAR Z : COMPLEX; A : COMPLEX); komplexer Kehrwert
Z=1/A
PROCEDURE cexp (VAR Z : COMPLEX; A : COMPLEX); Exponential Fkt.
Z=EXP(A)
PROCEDURE cln (VAR Z : COMPLEX; A : COMPLEX); natürlicher Logarith-
mus
Z=LN(A)
PROCEDURE csqr (VAR Z : COMPLEX; A : COMPLEX); Quadrat
Z=A*A
PROCEDURE root (N,X : REAL) : REAL; n-te Wurzel hier
für REAL Typ
(interne Bedeutung)
PROCEDURE csqrt (VAR Z:COMPLEX; A : COMPLEX); kompl. Wurzel
Z=SQRT(A), nur Haupt-
wert !
PROCEDURE csin (VAR Z : COMPLEX; A : COMPLEX); Sinus
Z=SIN(A)
PROCEDURE carcsin (VAR Z : COMPLEX; A : COMPLEX); Arkussinus
Z=ARCSIN(A)
PROCEDURE ccos (VAR Z : COMPLEX; A : COMPLEX); Kosinus
Z=COS(A)
PROCEDURE carccos (VAR Z : COMPLEX; A : COMPLEX); Arkuskosinus
Z=ARCCOS(A)
PROCEDURE ctan (VAR Z : COMPLEX; A : COMPLEX); Tangens
Z=TAN(A)
PROCEDURE carctan (VAR Z : COMPLEX; A : COMPLEX); Arkustangens
Z=ARCTAN(A)
PROCEDURE csinh (VAR Z : COMPLEX; A : COMPLEX); Hyperbelsinus
Z=SINH(A)
PROCEDURE carsinh (VAR Z : COMPLEX; A : COMPLEX); Areasinus
Z=ARSINH(A)
PROCEDURE ccosh (VAR Z : COMPLEX; A : COMPLEX); Hyperbelkosinus
Z=COSH(A)
PROCEDURE carcosh (VAR Z : COMPLEX; A : COMPLEX); Areakosinus
Z=ARCOSH(A)
PROCEDURE ctanh (VAR Z : COMPLEX; A : COMPLEX); Hyperbeltangens
Z=TANH(A)
PROCEDURE cartanh (VAR Z : COMPLEX; A : COMPLEX); Areatangens
Z=ARTANH(A)
PROCEDURE cpower (VAR Z : COMPLEX; A,B : COMPLEX); Potenzfunktion
Z=A hoch B
PROCEDURE croot (VAR Z:COMPLEX; K,N:REAL; A : COMPLEX); komplexe Wurzel
n: Wurzelexponent
k= 0..n-1
Hauptwert k=0
und Nenbenwerte
n -------
Z= _|
| A
k |